#ifndef INC_PAINTVISITOR_H
#define INC_PAINTVISITOR_H

#include "../model/DiagramVisitor.h"
#include "SelectionMan.h"

#include <QPainter>
#include <set>

class PointTranslator;

class PaintVisitor : public DiagramVisitor
{
	public:
		PaintVisitor(const PointTranslator& trans, QPainter& painter,
				const SelectionMan& selected,
				const std::set<UMLObject*>& ghosts = std::set<UMLObject*>());

		void visit(UMLBox&);
		void visit(UMLLine&);

	private:
		QColor penColor(UMLObject& obj);

		const PointTranslator& _trans;
		QPainter& _painter;
		const SelectionMan& _selected;
		const std::set<UMLObject*>& _ghosts;
};

#endif // INC_PAINTVISITOR_H

